From 8c2f103b2230456ffc00497d9b74f5725e28afe9 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 25 Mar 2010 07:41:55 +0000 Subject: [PATCH] Fix gdbserver-xen support on older kernels. The xc_ptrace API relies on errno for passing success/failure indication back to callers. However, mapping operations that fall back on legacy APIs may leave errno set to a non-zero result even thought the operation is successful. This patch resets errno after successful map operations so that xc_ptrace doesn't inadvertently return a failure. Signed-off-by: Justin Gibbs --- tools/libxc/xc_ptrace.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/libxc/xc_ptrace.c b/tools/libxc/xc_ptrace.c index 725a022339..e91ac56da6 100644 --- a/tools/libxc/xc_ptrace.c +++ b/tools/libxc/xc_ptrace.c @@ -193,6 +193,13 @@ map_domain_va( if (map == NULL) return NULL; + /* + * Due to the use of API fallback code in libxc, errno may + * be clobberred during successful operations. Since the caller + * of xc_ptrace is depending on errno for return status, clear + * errno here. + */ + errno = 0; return map + (va & ~PAGE_MASK); } -- 2.30.2